#ifndef __DVC_LOG_H__

#include "dvc_common.h"
#define DVC_LOG_PUSH_TYPE_SEC 0
#define DVC_LOG_PUSH_TYPE_MIN 1
#define DVC_LOG_PUSH_TYPE_HOUR 2
#define DVC_LOG_PUSH_TYPE_YEARS 3

#ifdef DVC_ENABLE_LOG
void dvc_log_clear(dvc_t dvc);
void dvc_log_record_sec(dvc_t dvc, dvc_log_t *log);
void dvc_log_record(dvc_t dvc, uint8_t type, dvc_log_t *log, uint8_t time_type);
void dvc_log_record_minc(dvc_t dvc, dvc_log_t *log);
void dvc_log_record_hour(dvc_t dvc, dvc_log_t *log);
void dvc_log_record_years(dvc_t dvc, dvc_log_t *log);

void dvc_log_print(dvc_t dvc, dvc_log_t *log);
uint16_t dvc_log_print_to(dvc_t dvc, dvc_log_t *log, void *buf, uint16_t len);
#endif

#ifdef DVC_ENABLE_EVENT_LOG
void dvc_log_event_clear(dvc_t dvc);
void dvc_log_event_push_only(dvc_t dvc, dvc_log_event_t *log);
void dvc_log_event_push(dvc_t dvc, dvc_log_event_t *log);
void dvc_log_event_record(dvc_t dvc, uint8_t flag, uint8_t event, uint8_t state);
uint16_t dvc_log_event_print_to(dvc_t dvc, dvc_log_event_t *log, void *buf, uint16_t len);
#endif

#endif // !__DVC_LOG_H__